// TCP调试服务器 - 监听1883端口，查看HarmonyOS发送的原始数据
const net = require('net');

const server = net.createServer((socket) => {
    console.log('🔌 TCP客户端连接:', socket.remoteAddress + ':' + socket.remotePort);
    
    socket.on('data', (data) => {
        console.log('📨 收到原始数据:');
        console.log('   长度:', data.length);
        console.log('   十六进制:', data.toString('hex'));
        console.log('   字符串:', data.toString());
        console.log('   缓冲区:', data);
        console.log('---');
        
        // 尝试解析MQTT连接包
        if (data.length > 0) {
            const firstByte = data[0];
            console.log('   第一个字节:', firstByte.toString(16), '(二进制:', firstByte.toString(2), ')');
            
            if ((firstByte >> 4) === 1) { // MQTT CONNECT 包
                console.log('   ✅ 这是一个MQTT CONNECT包');
            } else if ((firstByte >> 4) === 3) { // MQTT PUBLISH 包
                console.log('   ✅ 这是一个MQTT PUBLISH包');
            } else {
                console.log('   ❓ 未知的MQTT包类型:', firstByte >> 4);
            }
        }
        
        // 简单回复ACK
        try {
            socket.write(Buffer.from([0x20, 0x02, 0x00, 0x00])); // CONNACK
        } catch (err) {
            console.log('❌ 发送回复失败:', err);
        }
    });
    
    socket.on('close', () => {
        console.log('🔌 TCP客户端断开连接');
    });
    
    socket.on('error', (err) => {
        console.error('❌ TCP连接错误:', err);
    });
});

server.listen(1883, '0.0.0.0', () => {
    console.log('🚀 TCP调试服务器启动在端口 1883');
    console.log('🎯 等待HarmonyOS客户端连接...');
});

server.on('error', (err) => {
    console.error('❌ 服务器错误:', err);
    if (err.code === 'EADDRINUSE') {
        console.log('💡 端口1883被占用，请先停止MQTT服务器');
    }
});